<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
</body>
<script>
    // Object.defineProperty(对象, 属性名, { 配置项 })

    // const obj1 = {
    //     a:10,b:20
    // };

    // const obj2 = Object.defineProperty( obj1, "name", {
    //     // value: "admin",
    //     // writable: false,
    //     enumerable: true,
    //     get(){
    //         return "张三";
    //     },
    //     set(val){
    //         console.log(val);
    //     }
    // })

    // console.log(obj1);
    // console.log(obj2);
    // console.log(obj2 === obj1);

    // // 枚举
    // for(let i in obj1){
    //     console.log(i, obj1[i]);
    // }

    // obj1.name = "root";

    // console.log(obj1.name)



    // ============


    const origin = {
        name:"admin",
        age:18,
        sex:"男"
    }

    const target = {};

    for(let i in origin){
        Object.defineProperty( target, i, {
            get(){
                return origin[i];
            },
            set(val){
                // 操作DOM
                origin[i] = val;
            }
        })
    }

    console.log(origin);

    console.log(target);
    console.log(target.name);

    target.name = "张三";

    console.log(target);
    console.log(target.name);

</script>
</html>